2D Majority Game w/ Traits

created with NetLogo

view/download model file: 2D MG Traits.nlogo

WHAT IS IT?
-----------
The current model extends the 2D Majority Game by increasing the number of possible values that an agent can take. Up to this point an agent (or each feature of an agent) could only take one of two values. We now extend the basic two-dimensional majority game model by allowing the user to specify the number of possible values from 2 to 14. The agents still live in a 2D world with a toriodal topology (so there are still no 'edge effects'). In each step, agents change their state based upon the majority (or plurality) of their neighbors' states.

Agent types are now separated into up to fourteen values (or traits) for just one feature. Features represent different "characteristics" (or "attributes" or "dimensions" or "properties") of an agent. Think of the number of features as the number of possible properties agents can keep track of. Features are like variables that just hold values. The number of values (called "traits" by Axelrod or sometimes "alleles" in the literature) represents the possible variety that a feature may exhibit.

So in the earlier models we had one feature (the color property) and two values (red or blue). Now the agent can be one of up to fourteen colors. The color of an agent reflects the value that an agent has. In this model, plurality means the mode of the colors of the agents' neighbors (i.e. no minimum threshold must be met). Majority means that more than the specified percentage of an agent's neighbors must be the same color to cause the agent to change.

HOW TO USE IT
-------------
Clicking SETUP fills the world with agents (one per patch) each with a randomly chosen value from a uniform distribution of values (from 2 to the number you specify).

Clicking GO makes the turtles look at their neighbors and decide what to set their values to. All the agents look and change simultaneously, that is, the model employs synchronous updating. Clicking STEP runs GO just once.

The RADIUS slider allows the user to set how far away the agents will look to collect information about other users' states. In two dimensions, radius is a bit tricky. The radius includes all cells that can be reached from the home cell by moving vertically, horizontally, or diagonally for up to that many spaces. For example, if you set RADIUS to 1, each agent will look out to the eight cells surrounding it (plus the cell that itself is on). If you set RADIUS to 3, then it will include all spaces that can be reached in 3 "steps"; left 3, up 3, north-east 3, 2 to the right and one NE, etc. For more info about radius, see "Neighborhoods Example" in the Code Examples folder.

The USE-PLURALITY toggle switch allows the user to specifiy whether the decision rule is a "majority" rule or a "plurality" rule. If the USE-PLURALITY switch is on then each agent will convert its value to whichever value is most prominent among its neighbors (what about ties?). This is true even if, for example, there are two of one color and one of six other colors.

If USE-PLURALITY is off, then the decision is based upon majority rule. The PERCENT-NEEDED slider determines the quorum, i.e. how many neighbors with a particular value are necessary to make an agent change its value. At the lowest level (50%) the models runs a strict majority and at the maximum level (99%) unanimity is required.

The NUMBER_NEEDED monitor box lets the user know how many agents of a single value are required to convert each agent, given the provided RADIUS and PERCENT-NEEDED. Note that the actual number must be strictly greater than the number in this box (can you look at the code and answer why?).

THINGS TO NOTICE
----------------
set the number of values to be 7, then click SETUP and look at the distribution of colors. If you run the model with strict majority, what do you expect to see? Will many agents change color? Click GO and check your intuition.

Now change to the plurality rule and click SETUP and GO. Notice that they form clusters rather quickly. What happens in the long run? Do this several times; do you notice any similarity among the outcomes of different runs?

QUESTIONS
---------
1) How much slower does the model run with six values compared to fouteen values? How does this runtime difference compare to changing the radius from one to six?

4) What border shapes tend to be the most stable? Can you explain this stability using what you know about the plurality rule?

3) If you noticed something interesting about the frequency of a particular color or colors in the final outcomes of running the model, try to examine the code and determine what is causing it. What would you do to change this?

4) Using the Plurality Rule, set the RADIUS to 1 and run the model by repeatedly clicking the STEP button. Continue until you see a 4:4 tie around an agent (i.e. an agent of one color with four agents each of two different colors). What happens? What does this tell you about the tie-breaking rule? How could you change that rule? What are the consequences of your proposed change for other tie situations? Does your rule bias the outcome.

THINGS TO TRY
-------------
Try adding a minimum number to the plurality rule. For example, an agent will change its color to match the most prevelant color among its neighbors as long as there are at least three of that color. See how this change effects how quickly large clusters form.

Make your own tie-breaking rule. Or make multiple tie-breaking rules and test the different results.

Add some mutation to the model (i.e. a chance that an agent will just change colors for no reason). How would this effect the model running under the Majority Rule?

CREDITS AND REFERENCES
----------------------
To refer to this model please use: Bramson, Aaron and Scott Page (2005). NetLogo 2D MG Traits model. "http://bramson.net/academ/scottsnetlogo/2D MG Traits.html". Center for the Study of Complex Systems, University of Michigan, Ann Arbor, MI.